Last updated on Monday, October 06, 2025
@inproceedings{DemeyerOOPSLA2000,
author = {Serge Demeyer and St\'ephane Ducasse and
Oscar Nierstrasz},
booktitle = {Proceedings {OOPSLA}'00 (Conference on
Object-Oriented Programming, Systems, Languages and
Applications)},
month = oct,
note = {Acceptance ratio: 26/143 = 18\%; SCI impact factor
0.190, ranked 66 / 77},
pages = {166-177},
publisher = {{ACM} Press},
series = {Reappeared in {ACM} {SIGPLAN} Notices 35(10)},
title = {Finding Refactorings via Change Metrics},
year = {2000},
abstract = {Reverse engineering is the process of uncovering the
design and the design rationale from a functioning
software system. Reverse engineering is an integral
part of any successful software system, because
changing requirements lead to implementations that
drift from their original design. In contrast to
traditional reverse engineering techniques -which
analyse a single snapshot of a system- we focus the
reverse engineering effort by determining where the
implementation has changed. Since changes of
object-oriented software are often phrased in terms
of refactorings, we propose a set of heuristics for
detecting refactorings by applying lightweight,
object-oriented metrics to successive versions of a
software system. We validate our approach with three
separate case studies of mature object-oriented
software systems for which multiple versions are
available. The case studies suggest that the
heuristics support the reverse engineering process by
focusing attention on the relevant parts of a
software system.},
annote = {internationalconference},
top = {A* in CORE2013},
}